IceCC Command Reference

Format: IceCC opcode name, opcode ID, parameters, opcode description

    * playfram          0x00 - <frame#> - displays a particular frame, adjusted for direction.
    * playframtile      0x01 - <frame#> - displays a particular frame dependent on tileset.
    * sethorpos         0x02 - <x> - sets the current horizontal offset of the current image overlay.
    * setvertpos        0x03 - <y> - sets the vertical position of an image overlay.
    * setpos            0x04 - <x> <y> - sets the current horizontal and vertical position of the current image overlay.
    * wait              0x05 - <#ticks> - pauses script execution for a specific number of ticks.
    * waitrand          0x06 - <#ticks1> <#ticks2> - pauses script execution for a random number of ticks given two possible wait times. 
    * goto              0x07 - <labelname> - unconditionally jumps to a specific code block.
    * imgol             0x08 - <image#> <x> <y> - displays an active image overlay at an animation level higher than the current image overlay at a specified offset position.
    * imgul             0x09 - <image#> <x> <y> - displays an active image overlay at an animation level lower than the current image overlay at a specified offset position.
    * imgolorig         0x0a - <image#> - displays an active image overlay at an animation level higher than the current image overlay at the relative origin offset position.
    * switchul          0x0b - <image#> - only for powerups. Hypothesised to replace the image overlay that was first created by the current image overlay.
    * __0c              0x0c - no parameters - unknown.
    * imgoluselo        0x0d - <image#> <x> <y> - displays an active image overlay at an animation level higher than the current image overlay, using a LO* file to determine the offset position.
    * imguluselo        0x0e - <image#> <x> <y> - displays an active image overlay at an animation level lower than the current image overlay, using a LO* file to determine the offset position.
    * sprol             0x0f - <sprite#> <x> <y> - spawns a sprite one animation level above the current image overlay at a specific offset position.
    * highsprol         0x10 - <sprite#> <x> <y> - spawns a sprite at the highest animation level at a specific offset position.
    * lowsprul          0x11 - <sprite#> <x> <y> - spawns a sprite at the lowest animation level at a specific offset position.
    * uflunstable       0x12 - <flingy# - creates an flingy with restrictions; supposedly crashes in most cases.
    * spruluselo        0x13 - <sprite#> <x> <y> - spawns a sprite one animation level below the current image overlay at a specific offset position. The new sprite inherits the direction of the current sprite. Requires LO* file for unknown reason.
    * sprul             0x14 - <sprite#> <x> <y> - spawns a sprite one animation level below the current image overlay at a specific offset position. The new sprite inherits the direction of the current sprite.
    * sproluselo        0x15 - <sprite#> <overlay#> - spawns a sprite one animation level above the current image overlay, using a specified LO* file for the offset position information. The new sprite inherits the direction of the current sprite.
    * end               0x16 - no parameters - destroys the current active image overlay, also removing the current sprite if the image overlay is the last in one in the current sprite.
    * setflipstate      0x17 - <flipstate> - sets flip state of the current image overlay.
    * playsnd           0x18 - <sound#> - plays a sound.
    * playsndrand       0x19 - <#sounds> <sound#> <...> - plays a random sound from a list.
    * playsndbtwn       0x1a - <firstsound#> <lastsound#> - plays a random sound between two inclusive sfxdata.dat entry IDs.
    * domissiledmg      0x1b - no parameters - causes the damage of a weapon flingy to be applied according to its weapons.dat entry.
    * attackmelee       0x1c - <#sounds> <sound#> <...> - applies damage to target without creating a flingy and plays a sound.
    * followmaingraphic 0x1d - no parameters - causes the current image overlay to display the same frame as the parent image overlay.
    * randcondjmp       0x1e - <randchance#> <labelname> - random jump, chance of performing jump depends on the parameter.
    * turnccwise        0x1f - <turnamount> - turns the flingy counterclockwise by a particular amount.
    * turncwise         0x20 - <turnamount> - turns the flingy clockwise by a particular amount.
    * turn1cwise        0x21 - no parameters - turns the flingy clockwise by one direction unit.
    * turnrand          0x22 - <turnamount> - turns the flingy a specified amount in a random direction, with a heavy bias towards turning clockwise.
    * setspawnframe     0x23 - <direction> - in specific situations, performs a natural rotation to the given direction.
    * sigorder          0x24 - <signal#> - allows the current unit's order to proceed if it has paused for an animation to be completed.
    * attackwith        0x25 - <ground = 1, air = 2> - attack with either the ground or air weapon depending on a parameter.
    * attack            0x26 - no parameters - attack with either the ground or air weapon depending on target.
    * castspell         0x27 - no parameters - identifies when a spell should be cast in a spellcasting animation. The spell is determined by the unit's current order.
    * useweapon         0x28 - <weapon#> - makes the unit use a specific weapons.dat ID on its target.
    * move              0x29 - <movedistance> - sets the unit to move forward a certain number of pixels at the end of the current tick.
    * gotorepeatattk    0x2a - no parameters - signals to StarCraft that after this point, when the unit's cooldown time is over, the repeat attack animation can be called.
    * engframe          0x2b - <frame#> - plays a particular frame, often used in engine glow animations.
    * engset            0x2c - <frameset#> - plays a particular frame set, often used in engine glow animations.
    * __2d              0x2d - no parameters - hypothesised to hide the current image overlay until the next animation.
    * nobrkcodestart    0x2e - no parameters - holds the processing of player orders until a nobrkcodeend is encountered.
    * nobrkcodeend      0x2f - no parameters - allows the processing of player orders after a nobrkcodestart instruction.
    * ignorerest        0x30 - no parameters - conceptually, this causes the script to stop until the next animation is called.
    * attkshiftproj     0x31 - <distance> - creates the weapon flingy at a particular distance in front of the unit.
    * tmprmgraphicstart 0x32 - no parameters - sets the current image overlay state to hidden.
    * tmprmgraphicend   0x33 - no parameters - sets the current image overlay state to visible.
    * setfldirect       0x34 - <direction> - sets the current direction of the flingy.
    * call              0x35 - <labelname> - calls a code block.
    * return            0x36 - no parameters - returns from call.
    * setflspeed        0x37 - <speed> - sets the flingy.dat speed of the current flingy.
    * creategasoverlays 0x38 - <gasoverlay#> - creates gas image overlays at offsets specified by LO* files.
    * pwrupcondjmp      0x39 - <labelname> - jumps to a code block if the current unit is a powerup and it is currently picked up.
    * trgtrangecondjmp  0x3a - <distance> <labelname> - jumps to a block depending on the distance to the target.
    * trgtarccondjmp    0x3b - <angle1> <angle2> <labelname> - jumps to a block depending on the current angle of the target.
    * curdirectcondjmp  0x3c - <angle1> <angle2> <labelname> - only for units. Jump to a code block if the current sprite is facing a particular direction.
    * imgulnextid       0x3d - <x> <y> - displays an active image overlay at the shadow animation level at a specified offset position. The image overlay that will be displayed is the one that is after the current image overlay in images.dat.
    * __3e              0x3e - no parameters - unknown.
    * liftoffcondjmp    0x3f - <labelname> - jumps to a code block when the current unit that is a building that is lifted off.
    * warpoverlay       0x40 - <frame#> - hypothesised to display the current image overlay's frame clipped to the outline of the parent image overlay.
    * orderdone         0x41 - <signal#> - most likely used with orders that continually repeat, like the Medic's healing and the Valkyrie's afterburners (which no longer exist), to clear the sigorder flag to stop the order.
    * grdsprol          0x42 - <sprite#> <x> <y> - spawns a sprite one animation level above the current image overlay at a specific offset position, but only if the current sprite is over ground-passable terrain.
    * __43              0x43 - no parameters - unknown.
    * dogrddamage       0x44 - no parameters - applies damage like domissiledmg when on ground-unit-passable terrain.
